/*
6-5 数组逆转
本题要求实现一个函数，可将一个整型数组里的元素逆转。例如原数组是[1,3,5,7,9]，逆转之后变成[9,7,5,3,1]
函数接口定义：

void reverse(int *array, int size);

其中参数 array是数组首地址，size是数组的长度（size>0）。
*/

函数被调用进行测试的一个可能的例子像这样：
#include <stdio.h>
void reverse(int *array, int size);
int main() {
    int n;
    scanf("%d", &n);
    int array[n];
    for (int i = 0; i < n; i++)
        scanf("%d", array + i);
    reverse(array, n);
    for (int i = 0; i < n - 1; i++)
        printf("%d ", array[i]);
    printf("%d", array[n - 1]);
    return 0;
}
/* 你提交的代码将被嵌到这里 */

/*
知识点：数组，循环

下标从0开始，数组的下标范围是[0, size - 1]，所以逆转时，需要注意下标的计算。
前序下标：i
后序下标：size - i - 1
*/

void reverse(int *array, int size) {
    for (int i = 0; i < size / 2; i++) {
        int temp = array[i];
        // 计算后半部分的下标：size - i - 1
        array[i] = array[size - i - 1];
        array[size - i - 1] = temp;
    }
}

// 也可以不用计算后半部分的下标，直接用另一个变量j来表示
void reverse2(int *array, int size) {
    for (int i = 0, j = size - 1; i < j; i++, j--) {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
}